void GameWindow::timerEvent(QTimerEvent *event) {
    if (event->timerId() == timerId && !gameOver) {
        // 更新球的位置
        ballPos += ballVelocity;
        
        // 碰撞检测 - 墙壁
        if (ballPos.x() <= 10 || ballPos.x() >= width() - 10) {
            ballVelocity.setX(-ballVelocity.x());
        }
        if (ballPos.y() <= 10) {
            ballVelocity.setY(-ballVelocity.y());
        }
        
        // 碰撞检测 - 挡板
        if (ballPos.y() >= paddle.y() - 10 && 
            ballPos.x() >= paddle.x() && 
            ballPos.x() <= paddle.x() + paddle.width()) {
            ballVelocity.setY(-ballVelocity.y());
            score += 10;
        }
        
        // 游戏结束检测
        if (ballPos.y() >= height()) {
            gameOver = true;
        }
        
        update(); // 触发重绘
    }
}